package cn.goktech.sports.modules.importDataone.dao;

import cn.goktech.sports.modules.importDataone.entity.*;
import org.apache.ibatis.annotations.Mapper;

import cn.goktech.sports.modules.sys.dao.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.ss.formula.functions.Count;

import java.util.List;

/**
 * 模板一数据
 *
 * @author ZhouChenglin<yczclcn @ 1 6 3 . com>
 */
@Mapper
public interface ImportDataoneMapper extends BaseMapper<ImportDataoneEntity> {

    /**
     * 批量导入EMS数据
     */
    int importExcel(@Param("list") List<NationArea> list);


    /**
     * 获取限重表始化数据
     */
    List<WeightLimit> getWeightLimit(@Param("productName") String productName);

    /**
     * 获取标准表初始化数据
     */
    List<Standhard> getStandhard();

    /**
     * 批量插入航空平常小包数据
     */
    int addAviation(@Param("list") List<Aviation> list);


    /**
     * 批量插入航空挂号/跟踪小包数据
     */
    int addRegisteredAirmail(@Param("list") List<RegisteredAirmail> list);


    /**
     * 清空航空挂号/跟踪小包数据
     */
    int deleteRegisteredAirmail();

    /**
     * 清空航空平常小包数据
     */
    int deleteAviation();

    /**
     * 清空通达表数据
     */
    int deleteNationArea(@Param("typeId") Long typeId);

    int addStandard(@Param("list") List<Standhard> list);

    List<ProductType> getProductList();

    int addBaseCountry(@Param("list") List<BaseCountry> list);

    int deleteBaseCountry();

    int addCountry(@Param("list") List<BaseCountry> list);

    //添加限重数据
    int addWeightLimit(@Param("list") List<WeightLimit> list);

    //删除限重数据
    int deleteWeightLimit();

    //删除尺寸标准数据
    int deleteStandard();

    //删除国际EMS违禁品数据
    int deleteBaseProhibited();

    //插入国际EMS违禁品数据
    int addBaseProhibited(@Param("list") List<BaseProhibited> list);


    //删除头程违禁品数据
    int deleteHeaderProhibitedArticle();

    //插入头程违禁品数据
    int addProhibitedArticle(@Param("list") List<HeaderProhibitedArticle> list);

    List<Depot> getDepotList();

    //删除仓库数据
    int deleteDepot();

    //插入头程违禁品数据
    int addDepot(@Param("list") List<Depot> list);


    //删除分区数据
    int deleteCountryPartition();

    //插入分区数据
    int addCountryPartition(@Param("list") List<CountryPartition> list);


    //删除产品分区数据
    int deleteProductPartition(@Param("productId") Long productId);

    //插入产品分区数据
    int addProductPartition(@Param("list") List<ProductPartition> list);

    List<CountryPartition> getCountryPartition();

    //插入直达产品区间计费数据
    int addThroughSectionCharging(@Param("list") List<ThroughSectionCharging> list);

    //删除直达产品区间计费数据
    int deleteThroughSectionCharging();

    //清空FedEx重量价格表
    int deleteFedEx(@Param("productId") Long productId);

    //插入FedEx重量价格表
    int addFedEx(@Param("list") List<FedExWeightPrice> list);

    //清空Dhl前30计费区间数据
    int  deleteDHLChargingSection(@Param("productId") Long productId);

    //插入Dhl前30计费区间数据
    int  addDHLChargingSection(@Param("list") List<DHLChargingSection> list);
}
